/* 
1. 请求网站数据
2. 将数据保存本地文件
*/

const http = require('https');
const fs = require('fs');
const cheerio = require('cheerio');
let url = 'https://www.bilibili.com/';
let json = 'http://nodejs.org/dist/index.json'
http.get(url, (res) => {
  // 安全判断
  const {statusCode} = res; // 状态码
  const contentType = res.headers['content-type'];// 文件类型

  console.log(statusCode, contentType);

  let err = null;
  if(statusCode!==200){
    err = new Error('请求状态错误');
  }else if(!/^text\/html/.test(contentType)){
    // 格式类型是网页
    err = new Error('请求类型错误');
  }
  if(err){
    console.log(err);
    res.rusume() // 重置缓存
    return false;
  }



  // 数据分段，只要接受数据就会触发 data 事件，chunk 每次接受的数据片段
  // 用来拼接 分段的数据
  let rawData = '';

  res.on('data', (chunk) => {
    console.log('---------------');
    rawData += chunk.toString('utf8');
    // console.log(rawData);
  });
  // 数据流传输完毕
  res.on('end', () => {
    // 数据存储到本地
    // fs.writeFileSync('./bibi.html', rawData);
    console.log('all right~');
    // 通过 cheerio 分析
    let $ = cheerio.load(rawData);
    $('img').each((index,el)=>{
      console.log($(el).attr('src'));
    })
  })
}).on('err', (err) => {
    console.log('传输错误');
  })
  
  